package flag

import (
	"flag"
	"reflect"
)

type Option struct {
	DB   bool
	User string // -u admin or -u user
}

// Parse 解析命令行参数
func Parse() Option {
	dbBool := flag.Bool("db", false, "初始化数据库")
	user := flag.String("u", "", "创建用户") // -u 默认""
	// 解析命令行参数写入注册的flag里面
	flag.Parse()
	return Option{
		DB:   *dbBool,
		User: *user,
	}
}

// IsWebStop 是否停止web项目
func IsWebStop(option Option) bool {
	// 判断结构体不为空
	if !reflect.DeepEqual(option, Option{}) {
		return true
	}
	return false
}

// SwitchOption 根据命令执行不同的函数
func SwitchOption(option Option) {
	if option.DB {
		Makemigrations()
		return
	}
	if option.User == "admin" || option.User == "user" {
		CreateUser(option.User)
		return
	}
	// 打印操作
	flag.Usage()
}
